package com.fc.mall.service;

import com.fc.mall.dto.*;
import com.fc.mall.dto.*;
import com.fc.mall.model.UmsMember;
import com.fc.mall.model.UmsMemberBank;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * Created by Sunny on 2019/5/28.
 */
public interface UmsMemberService {

    List<UmsMember> getList(int pageNum, int pageSize);

    @Transactional
    void upgradeMemberLevel(UmsMember umsMember);

    int delMember(Long memberId);

    List<UmsMemberFull> getFullMemberList(UmsMemberQueryParam param, int pageNum, int pageSize);

    List<UmsMemberFull> getMemberRelation(Long memberId);

    List<UmsMemberCommission> getMemberCommissionList(UmsMemberCommissionParam umsMemberCommissionParam, int pageNum, int pageSize);

    /**
     * 会员佣金不同状态数量查询
     * @param memberId
     */
    UmsMemberCommissionStatusCount getCommissionStatusCount(Long memberId);

    UmsMemberBank getMemberBank(Long memberId);

    UmsMemberIncomeStaticInfo getMemberIncomeStatic(Long memberId);

    UmsMemberAccountAndBankDto getUmsMemberAndAccountAndBankInfo (Long memberId);

    /**
     * 粉丝列表
     * @return
     */
    List<UmsMemberFull> queryFansList(Long memberId,UmsMemberFansQueryParam param);

    /**
     * 获取粉丝数量
     * @param memberId
     * @return
     */
    UmsMemberFansCount countFans(Long memberId);

    /**
     * 增加代理商到期时间
     * @param param
     */
    void addExpireDate(UmsMemberAddExpireDateParam param);
}
